Previous attempts at generative music software have generally fallen into two categories: those whose output is overwhelmingly random, because they do not apply the rules and constraints to the random output that are necessary to produce the kind of structured music that ‘makes sense’ to the listener's ear; and those that use machine-learning to build up a database of the likely patterns and progressions in a certain style of music, in order to imitate that style.